package com.foreknow.dao.impl;

import com.foreknow.dao.AdminDao;
import com.foreknow.mapping.EntityMapping;
import com.foreknow.mapping.MappingFactory;
import com.foreknow.model.Admin;

import java.sql.SQLException;
import java.util.List;

public class AdminDaoImpl extends BaseDAO implements AdminDao {
    @Override
    public Admin isCheckLogin(String username, String password) throws SQLException {
        //创建sql语句以便当做方法的参数,这里的方法去查看jdbc里的方法
        String sql="select *from admin where username=? and password=?";
        //因为继承了Basedao,mappingFacory是Basedao里的常量属性,所以可以直接调用BaseDao里的方法
        //getMap()里要用工厂类的类名去点,因为每个实体类Mapping都是工厂类的常量,工厂方法里有写
        EntityMapping mapping = mappingFactory.getMap(MappingFactory.ADMIN_MAPPING);
        //这里的this表示当前AdminDaoImpl这个类,因为集成了basedao,所以可以直接调用里面的方法
        //记住一定要把参数传进去
        List<Object> list = this.jdbcTemplate.query(sql, mapping, username, password);
        //然后去判断,如果集合的长度大于0,那么里面就会有值
        if (list.size()>0){
            //返回的对象正常是object对象,所以要强制类型转换,利用getindexof();这个方法拿值
            //因为只有一个值,集合下标是从0开始的,所以写0就可以
            return (Admin)list.get(0);
        }else {
            return null;
        }

    }
}
